//package work.rightAnswer;
//
//import work.TreeNode;
//
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Stack;
//
//class BSTIterator_173 {
//    //创建一个集合将中序遍历结果存起来
//    List<Integer> list;
//    int index = -1;
//
//    public BSTIterator_173(TreeNode root) {
//        list = new ArrayList<>();
//        Stack<TreeNode> stack = new Stack<>();
//        stack.push(root);
//        while (!stack.isEmpty()){
//            //迭代法遍历
//            //先取出栈顶元素，1.如果结果不为null，那就按 右-》中-》左的顺序，将元素重新存起来
//            //如果为空，那就实pop两次（第一次取出null，第二次实行遍历）
//            TreeNode pop = stack.pop();
//            if(pop!=null){
//                if(pop.right!=null)stack.push(pop.right);
//                stack.push(pop);
//                stack.push(null);
//                if(pop.left!=null)stack.push(pop.left);
//            }else {
//                list.add(stack.pop().val);
//            }
//        }
//    }
//
//    public int next() {
//        index++;
//        return list.get(index);
//    }
//
//    public boolean hasNext() {
//        if(index>=list.size()-1){
//            return false;
//        }else {
//            return true;
//        }
//
//    }
//}
